// ManipulatorGLObject.h

#ifndef MANIPULATORGLOOBJECT_H_
#define MANIPULATORGLOOBJECT_H_

#include <stdio.h>
#include <fstream>
#include <string>
#include <boost/algorithm/string.hpp>
#include <boost/lexical_cast.hpp>
#include <vector>

#include "Angel.h"
#include "DebugHelper.h"
#include "GLObject3D.h"

namespace Voltron
{

	class ManipulatorGLObject: public GLObject3D
	{

		private:

		// Private Constructors
		// Private Destructor
		// Private properties
		// Private members

		protected:

		// Protected Constructors
		// Protected Destructor
		// Protected properties
		// Protected members

		public:
		// Public Constructors
		ManipulatorGLObject();
		//ManipulatorGLObject(int quantityVerts);
		ManipulatorGLObject(GLuint shaderprogram);
		//ManipulatorGLObject(int quantityVerts, vec4* positionVerts, vec4* colorVerts, GLuint shaderprogram);

		// Public Destructor
		~ManipulatorGLObject();

		// Public properties
        GLint flag;
		bool  _visible;
		
		// Public Members
		void initColorBuffers(GLuint shaderprogram);
		void CreateAxesGeometry();
		void render();
		bool isSelected(GLubyte pixel[4]);
		mat4 transformModel(mat4 transform);
	};
}

#endif
